作者:迷途羔羊1989_751 | 来源:互联网 | 2023-09-12 19:30
文章目录前言一、ElasticsearchDocker安装二、KibanaDocker安装三、测试方法四、Elasticsearch简单使用五、整体的系统的使用方式六、Spring
文章目录
- 前言
- 一、Elasticsearch Docker安装
- 二、Kibana Docker安装
- 三、测试方法
- 四、Elasticsearch简单使用
- 五、整体的系统的使用方式
- 六、Springboot整合ElasticSearch
- 参考资料
前言
elasticsearch的前置知识可以看这里全文搜索引擎 Elasticsearch 入门教程 这里从概念的操作都有
一、Elasticsearch Docker安装
// 拉镜像, 记得带版本号
docker pull elasticsearch:7.2.0// 运行容器,注意自己的内存大小,默认1G,这里设置成256m
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 elasticsearch:7.6.2
验证地址
http:ip地址:9200
如过以上执行后不起来,删除容器,执行这个(有错误原因是内存大小和缺少配置)
// 删除容器
docker rm ES01
// 配置内存大小vi /etc/sysctl.conf 在末尾加上 vm.max_map_count=262144
// 重启构建容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name ES01 elasticsearch:7.6.2
过了一会,容器又Exited (137),查了下分配内存不够的原因,还是需要内存的,7.6.2的版本256m看来不是很够,还是要更大的,内存小的还是安装低版本的吧(6.4.3可)
需要高版本又没那么大的服务期还是虚拟机吧
至于为啥两个端口:
9200:使用http请求,所以我们的rest方式的client要使用这个端口进行访问
9300:使用tcp请求,是系统预留给es内部组件之间的通信方式
我后来安装了kibana后,发现我的破电脑跑不了这么多东西
就重新下了个低版本的(一开始7.2.0可以用,但是自从我给他挤爆了后,就起不来,就安装了低版本)
没办法,配置低
两天过去了,发现只是那时候没看日志,如果出问题可以使用
docker logs 容器名称/容器ID
来查看错误原因,如下,找到最后的[error]即可
二、Kibana Docker安装
因为内存大小原因我就不安装了,步骤很简单就下面
// 拉镜像
docker pull kibana:5.6.9// 运行容器,设置对应elasticsearch的地址
docker run --name kibana -e ELASTICSEARCH_URL=http://ip:9200 -p 5601:5601 -d kibana:7.2.0
验证地址
http://ip地址:5601
三、测试方法
我是使用postman进行测试的
get请求可以直接浏览器访问 | 命令行curl + 地址访问
post | put请求也可以使用 curl -X PUT + 地址访问 (注意PUT要大写)
四、Elasticsearch简单使用
- 查看集群的健康情况(get)
http://reentrantlock.cn:9200/_cat
2. 查看es的健康状况 (get)
http://reentrantlock.cn:9200/_cat/health?v
说明:v是用来要求在结果中返回表头
图片来自Elasticsearch解决健康状态异常问题
- 查看所有索引 - 一开始应该只有表头(get)
http://reentrantlock.cn:9200/_cat/indices?v
4. 创建索引 - pretty作用同mongodb的pretty,用于返回结构化的数据(就是更好看的数据-结构(json)上)
http://reentrantlock.cn:9200/customer?pretty
这时候可以调用之前的查询索引查看变化
如果创建相同的索引会报错
5. 索引一个文档到customer索引中
http://reentrantlock.cn:9200/customer/_doc/1
6. 从customer索引中获取指定id的文档
http://reentrantlock.cn:9200/customer/_doc/1
- 获取指定索引下所有文档
http://reentrantlock.cn:9200/customer/_search
参数含义:
took: 是查询花费的时间,毫秒单位
time_out: 标识查询是否超时
_shards: 描述了查看分片的信息,查询了多少个分片、成功的分片数量、失败的分片数量等。
total: 代表当前ES里总数只有一条数据,不管你发送任何请求,ES都会把总数返回
hits: 搜索的结果,total是全部满足的文档数目,hits是返回的实际数目(默认是10)
_score: 是文档的分数信息,与排名相关度有关,参考各大搜索引擎的搜索结果,就容易理解
_index: 指定查询的索引(类似数据库的某个库)
_type: 指定查询的文档(类似数据库的某个表)
_id: 查询指定的id
_source: 查询返回的数据
五、整体的系统的使用方式
// TODO 完成官方的demo练习
完成了简单的使用后,觉得还是应该看下官网的demo好好走一次,为了结构不乱,我另开一篇专门说。
六、Springboot整合ElasticSearch
试了一个上午,发现各种版本会出现各种问题,找个时间另外发布一篇
参考资料
- Docker系列之Elasticsearch安装教程
- docker快速安装kibana
- ElasticSearch 最全详细使用教程
- ElasticSearch的介绍及使用
- 官网Demo